package com.lcc.lynx.jdbc.enums;

/**
 * 运算符
 * @author lcc
 * @date 2025/7/14 17:10
 */
public enum QwMethod {

    /** 求和 */
    SUM("sum(?0)"),
    /** 求平均值 */
    AVG("avg(?0)"),
    /** 求最大值 */
    MAX("max(?0)"),
    /** 求最小值 */
    MIN("min(?0)"),
    /** 求个数 */
    COUNT("count(?0)"),
    /** 负数 */
    NEGATIVE("-(?0)"),
    /** 绝对值 */
    ABS("abs(?0)"),
    /** 去重 */
    DISTINCT("distinct"),
    /** 去重 */
    DISTINCT_COLUMN("distinct(?0)"),
    /** 字符串切割 */
    SUBSTRING("substring(?0, #{?1}, #{?2})"),
    /** 字符串替换 */
    REPLACE("replace(?0, #{?1}, #{?2})"),
    /** 左截取字符串 */
    LEFT("left(?0, #{?1})"),
    /** 右截取字符串 */
    RIGHT("right(?0, #{?1})"),
    /** 字符串长度 */
    LENGTH("length(?0)"),
    /** 字符串连接 */
    CONCAT("concat(?0, #{?1})"),
    /** 字符串位置 */
    STRPOS("strpos(?0, #{?1})"),


    ;

    private String value;
    private boolean hasArg;
    QwMethod(String value) {
        this.value = value;
        this.hasArg = value.contains("?");
    }


    public boolean hasArg() {
        return hasArg;
    }

    public String value() {
        return value;
    }

}
